/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import controlador.IReclamacionController;
import java.util.*;
import modelo.persistencia.IReclamacionDAO;
import modelo.persistencia.ReclamacionDAO;
/**
 *
 * @author LEONIC
 */
public class ReclamacionModel implements IReclamacionModel{

    private IReclamacionController controller;

    public IReclamacionController getController() {
        return controller;
    }

    public void setController(IReclamacionController controller) {
        this.controller = controller;
    }

    public void nuevoReclamacion(IReclamacion reclamacion) {
        IReclamacionDAO dao = obtenerImplementacionReclamacionDAO();
        dao.create(reclamacion);
        fireModelChanged();
    }

    public void actualizarReclamacion(IReclamacion reclamacion) {
        IReclamacionDAO dao = obtenerImplementacionReclamacionDAO();
        dao.update(reclamacion);
        fireModelChanged();

    }

    public void eliminarReclamacion(IReclamacion reclamacion) {
        IReclamacionDAO dao = obtenerImplementacionReclamacionDAO();
        dao.delete(reclamacion);
        fireModelChanged();
    }

    public IReclamacion obtenerReclamacion(int id) {
        IReclamacionDAO dao = obtenerImplementacionReclamacionDAO();
        return dao.read(id);
    }

    public List<IReclamacion> obtenerReclamacion() {
        IReclamacionDAO dao = obtenerImplementacionReclamacionDAO();
        return dao.list();
    }

    private IReclamacionDAO obtenerImplementacionReclamacionDAO() {
        //return new ContactoDAOFile();
        return new ReclamacionDAO();
    }

    protected void fireModelChanged() {
        getController().fireDataModelChanged();
    }
}
